#ifndef SQUARE_H_
#define SQUARE_H_
#include <vector>

/*
    struct for representing a square in the grid.
*/
struct Square
{
    bool isVisible, isWater, isHill, isFood;
    int ant, hillPlayer;
    double value;
    double recently_viewed;
    double recently_visited;
    bool isDead;
    bool isSafe;    

    std::vector<int> deadAnts;
  

    Square()
    {
        isVisible = isWater = isHill = isFood = 0;
        ant = hillPlayer = -1;
        value = .0;
        recently_viewed = .0;
        recently_visited = .0;
	isDead = false;
	isSafe = true;
    }

    //resets the information for the square except water information
    void reset(void)
    {
        isVisible = 0;
        // keep isWater
        isHill = 0;
        isFood = 0;
        ant = hillPlayer = -1;
        value = 0; // value is recomputed every turn
        // -- keep recently_viewed
        isDead = false;
        isSafe = true;
        deadAnts.clear();
    }
};

#endif //SQUARE_H_
